<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>QSculpt: Camera Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">QSculpt
   &#160;<span id="projectnumber">0.0.1a</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Camera Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Camera" -->
<p><code>#include &lt;<a class="el" href="_camera_8h_source.html">Camera.h</a>&gt;</code></p>

<p><a href="class_camera-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae94716303983ba03c74cf6847faf25a6"></a><!-- doxytag: member="Camera::Camera" ref="ae94716303983ba03c74cf6847faf25a6" args="(const Camera &amp;orig)" -->
&#160;</td><td class="memItemRight" valign="bottom"><b>Camera</b> (const <a class="el" href="class_camera.html">Camera</a> &amp;orig)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab62c877fe977c99329c4d79c9c251b91"></a><!-- doxytag: member="Camera::operator=" ref="ab62c877fe977c99329c4d79c9c251b91" args="(const Camera &amp;orig)" -->
<a class="el" href="class_camera.html">Camera</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_camera.html">Camera</a> &amp;orig)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2be46db7ae7df8455f039164e9eb142"></a><!-- doxytag: member="Camera::setPosition" ref="ab2be46db7ae7df8455f039164e9eb142" args="(const Point3 &amp;p)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setPosition</b> (const Point3 &amp;p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f594ef1f274357e3295cad107f12b35"></a><!-- doxytag: member="Camera::getPosition" ref="a2f594ef1f274357e3295cad107f12b35" args="()" -->
Point3&#160;</td><td class="memItemRight" valign="bottom"><b>getPosition</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae75d079597bff7871791c176df880613"></a><!-- doxytag: member="Camera::setTargetPoint" ref="ae75d079597bff7871791c176df880613" args="(const Point3 &amp;target)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setTargetPoint</b> (const Point3 &amp;target)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d1a6bad2848913143a854e3902122b4"></a><!-- doxytag: member="Camera::getTargetPoint" ref="a6d1a6bad2848913143a854e3902122b4" args="()" -->
Point3&#160;</td><td class="memItemRight" valign="bottom"><b>getTargetPoint</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a47976f707dd50517e1942b3068d72a3a"></a><!-- doxytag: member="Camera::setOrientationVector" ref="a47976f707dd50517e1942b3068d72a3a" args="(const Point3 &amp;v)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setOrientationVector</b> (const Point3 &amp;v)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9028e6f372a929593c327e2313b4826e"></a><!-- doxytag: member="Camera::getOrientationVector" ref="a9028e6f372a929593c327e2313b4826e" args="()" -->
Point3&#160;</td><td class="memItemRight" valign="bottom"><b>getOrientationVector</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acaac60a22d9fbec0eebd15b4ee39d48f"></a><!-- doxytag: member="Camera::setLongitude" ref="acaac60a22d9fbec0eebd15b4ee39d48f" args="(double longitude)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setLongitude</b> (double longitude)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7a22c02fb4f3117917f7ec5ff0eed0b"></a><!-- doxytag: member="Camera::getLongitude" ref="aa7a22c02fb4f3117917f7ec5ff0eed0b" args="()" -->
double&#160;</td><td class="memItemRight" valign="bottom"><b>getLongitude</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa31a00c9e962b545df37f591990c0c7c"></a><!-- doxytag: member="Camera::setColatitude" ref="aa31a00c9e962b545df37f591990c0c7c" args="(double colatitude)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setColatitude</b> (double colatitude)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a31c6cc622c9e0abb6729d0e698244d10"></a><!-- doxytag: member="Camera::getColatitude" ref="a31c6cc622c9e0abb6729d0e698244d10" args="()" -->
double&#160;</td><td class="memItemRight" valign="bottom"><b>getColatitude</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22f762de602c6853c972008cbf9474a9"></a><!-- doxytag: member="Camera::setDistanceFromTarget" ref="a22f762de602c6853c972008cbf9474a9" args="(double distance)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDistanceFromTarget</b> (double distance)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a08d632107535b29560912847cfc03f45"></a><!-- doxytag: member="Camera::getDistanceFromTarget" ref="a08d632107535b29560912847cfc03f45" args="()" -->
double&#160;</td><td class="memItemRight" valign="bottom"><b>getDistanceFromTarget</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#af92eb867ef3e2ae62e9ca7e40ce9a209">setModelView</a> (const Eigen::Matrix4f &amp;m)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const Eigen::Matrix4f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a7fc1314e06fff4e0b8f724bc26dcb712">modelView</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a221b64d03991f28df8cf7fe8def42232">setProjectionMatrix</a> (const Eigen::Matrix4f &amp;m)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const Eigen::Matrix4f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a747273ee8a9d895f6acd5495ac89514d">projection</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a6aa438a66e6fed07fd32c0c06cb1a242">setPerspectiveMatrix</a> (float left, float right, float bottom, float top, float near, float far)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a1e06946fb60f7b730660afd45bc7901b">setOrthoMatrix</a> (float left, float right, float bottom, float top, float near, float far)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a07d7af6b910ab2112dad430de40181f0">setPerspectiveMatrix</a> (float fovy, float aspect, float zNear, float zFar)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a0633e6dd7da60a2514f963e69490ecd6">setViewport</a> (const Eigen::Matrix4f &amp;m)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#ac18bcb1671b4895707b1ab4f6684e454">setViewport</a> (int x, int y, int w, int h)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const Eigen::Matrix4f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a1805dd6804788881491c891246d33872">viewport</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a11da2441c39e3217df2f10e9365e80b1">eyeToWorld</a> (const Vector3 &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#ae55b684d0785736e7ffdebb876a5ead1">eyeToWorld</a> (float x, float y, float z, float w=1.f) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#a5416d3ba2532e4a679b1ff8292a25ebf">worldToEye</a> (const Vector3 &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Vector3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#ab9c371d3929789beeff168b1cf3e7f75">worldToEye</a> (float x, float y, float z, float w=1.f) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html#acb5db1f22aa35acb68cfa4bf2718bcc3">toString</a> () const </td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="class_camera.html">Camera</a> class provides methods to create the different matrices used to transform the vertices in world space to screen space.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Juan Roberto Cabral Flores &lt;<a href="mailto:roberto.cabral@gmail.com">roberto.cabral@gmail.com</a>&gt; </dd></dl>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a11da2441c39e3217df2f10e9365e80b1"></a><!-- doxytag: member="Camera::eyeToWorld" ref="a11da2441c39e3217df2f10e9365e80b1" args="(const Vector3 &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector3 Camera::eyeToWorld </td>
          <td>(</td>
          <td class="paramtype">const Vector3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Maps a point from screen space to world space.</p>
<p>This method is similar in purpose to gluUnproject function call. </p>

</div>
</div>
<a class="anchor" id="ae55b684d0785736e7ffdebb876a5ead1"></a><!-- doxytag: member="Camera::eyeToWorld" ref="ae55b684d0785736e7ffdebb876a5ead1" args="(float x, float y, float z, float w=1.f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector3 Camera::eyeToWorld </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>w</em> = <code>1.f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Overload to accept a vector by components </p>

</div>
</div>
<a class="anchor" id="a7fc1314e06fff4e0b8f724bc26dcb712"></a><!-- doxytag: member="Camera::modelView" ref="a7fc1314e06fff4e0b8f724bc26dcb712" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const Eigen::Matrix4f &amp; Camera::modelView </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the model view matrix used by this camera. </p>

</div>
</div>
<a class="anchor" id="a747273ee8a9d895f6acd5495ac89514d"></a><!-- doxytag: member="Camera::projection" ref="a747273ee8a9d895f6acd5495ac89514d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const Eigen::Matrix4f &amp; Camera::projection </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the projection matrix used by the camera </p>

</div>
</div>
<a class="anchor" id="af92eb867ef3e2ae62e9ca7e40ce9a209"></a><!-- doxytag: member="Camera::setModelView" ref="af92eb867ef3e2ae62e9ca7e40ce9a209" args="(const Eigen::Matrix4f &amp;m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Camera::setModelView </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Matrix4f &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the transformation matrix to use for the camera or eye transformation.</p>
<p>If this function is used, then position, target and orientation vectors are not valid anymore as those paramater are used to construct this matrix. </p>

</div>
</div>
<a class="anchor" id="a1e06946fb60f7b730660afd45bc7901b"></a><!-- doxytag: member="Camera::setOrthoMatrix" ref="a1e06946fb60f7b730660afd45bc7901b" args="(float left, float right, float bottom, float top, float near, float far)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Camera::setOrthoMatrix </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>bottom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>top</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>near</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>far</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Constructs a new orthographic projection matrix based in the specified planes values. </p>

</div>
</div>
<a class="anchor" id="a6aa438a66e6fed07fd32c0c06cb1a242"></a><!-- doxytag: member="Camera::setPerspectiveMatrix" ref="a6aa438a66e6fed07fd32c0c06cb1a242" args="(float left, float right, float bottom, float top, float near, float far)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Camera::setPerspectiveMatrix </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>bottom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>top</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>near</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>far</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Constructs a new perspective projection matrix based in the specified planes values. </p>

</div>
</div>
<a class="anchor" id="a07d7af6b910ab2112dad430de40181f0"></a><!-- doxytag: member="Camera::setPerspectiveMatrix" ref="a07d7af6b910ab2112dad430de40181f0" args="(float fovy, float aspect, float zNear, float zFar)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Camera::setPerspectiveMatrix </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>fovy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>aspect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>zNear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>zFar</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Construct a perspective projection matrix based in field of view and aspect ratio values.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fovy</td><td>the field of view angle in degrees in the y direction </td></tr>
    <tr><td class="paramname">aspect</td><td>aspect ratio used to determine the field of view in the x direction </td></tr>
    <tr><td class="paramname">zNear</td><td>cut off plane in the z direction </td></tr>
    <tr><td class="paramname">zFar</td><td>cut off plane in the z direction, far from the point of view. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a221b64d03991f28df8cf7fe8def42232"></a><!-- doxytag: member="Camera::setProjectionMatrix" ref="a221b64d03991f28df8cf7fe8def42232" args="(const Eigen::Matrix4f &amp;m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Camera::setProjectionMatrix </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Matrix4f &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the projection matrix to use for the perspective projection transformation.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">m</td><td>projection matrix to use </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0633e6dd7da60a2514f963e69490ecd6"></a><!-- doxytag: member="Camera::setViewport" ref="a0633e6dd7da60a2514f963e69490ecd6" args="(const Eigen::Matrix4f &amp;m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Camera::setViewport </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Matrix4f &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the viewport transformation matrix.</p>
<p>This transformation matrix is applied after the projection transformation to map from the projection canonical view volume to screen space or window space.</p>
<p>This is similar to calling glViewpot in OpenGL. </p>

</div>
</div>
<a class="anchor" id="ac18bcb1671b4895707b1ab4f6684e454"></a><!-- doxytag: member="Camera::setViewport" ref="ac18bcb1671b4895707b1ab4f6684e454" args="(int x, int y, int w, int h)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Camera::setViewport </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the viewport matrix.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the initial x window coordinate </td></tr>
    <tr><td class="paramname">y</td><td>the initial y window coordinate </td></tr>
    <tr><td class="paramname">w</td><td>the width of the viewport </td></tr>
    <tr><td class="paramname">h</td><td>the height of the viewport </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acb5db1f22aa35acb68cfa4bf2718bcc3"></a><!-- doxytag: member="Camera::toString" ref="acb5db1f22aa35acb68cfa4bf2718bcc3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QString Camera::toString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Create a string representation of the object.</p>
<p>Outputs each attribute this class contains. </p>

</div>
</div>
<a class="anchor" id="a1805dd6804788881491c891246d33872"></a><!-- doxytag: member="Camera::viewport" ref="a1805dd6804788881491c891246d33872" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const Eigen::Matrix4f &amp; Camera::viewport </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the viewport transformation matrix.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_camera.html#a0633e6dd7da60a2514f963e69490ecd6">Camera::setViewport</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a5416d3ba2532e4a679b1ff8292a25ebf"></a><!-- doxytag: member="Camera::worldToEye" ref="a5416d3ba2532e4a679b1ff8292a25ebf" args="(const Vector3 &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector3 Camera::worldToEye </td>
          <td>(</td>
          <td class="paramtype">const Vector3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Maps a point from world space to screen space.</p>
<p>This method is similar in purpose to gluProject function call. </p>

</div>
</div>
<a class="anchor" id="ab9c371d3929789beeff168b1cf3e7f75"></a><!-- doxytag: member="Camera::worldToEye" ref="ab9c371d3929789beeff168b1cf3e7f75" args="(float x, float y, float z, float w=1.f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector3 Camera::worldToEye </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>w</em> = <code>1.f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Overload to accept a vector by components </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>engine/include/<a class="el" href="_camera_8h_source.html">Camera.h</a></li>
<li>engine/src/Camera.cpp</li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Thu May 31 2012 16:19:52 for QSculpt by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
